package day1;
//测试函数式接口
public class TestFunction {
    public static void main(String[] args) {
        //lambda表达式:是jdk1.8的特性,用于描述函数式接口的
        //语法: ()->{}
        //():表示抽象方法的参数
        //->:就是一个固定的链接符
        //{}:表示抽象方法需要做方法实现部分
        //利用匿名内部类写的接口
        two t=new two(){
            public void a(String a, int b) {
            }
        };
        //利用lambda表达式来实现接口
        two t2=(a,b)->{
            System.out.println("呵呵:"+a+" "+b);
        };
        t2.a("a",200);
        //lambda表达式 如果方法带返回值,而且只有一行代码
        //正好就是方法的返回值 {}  return都可以省略
        three t3=(c,d)->{
            String num=c+d;
            int n=Integer.parseInt(num);
            return n;
        };
        three t4=(c,d)-> Integer.parseInt(c+d);

    }
}
//普通接口: 有1个以上的抽象方法
interface One{
    public void one();
    public void two();
    public void three(int a,String b);
}
//函数式接口: 里面有且只有一个抽象方法
//同时还可以通过@FunctionalInterface标注函数式接口
@FunctionalInterface
interface two{
    public void a(String a,int b);
    public default void b(){
    }
}
interface three{
    public int a(int a,String b);
}